The polymorphic Pi-calculus : theory and implementation
نویسنده
چکیده
We investigate whether the π-calculus is able to serve as a good foundation for the design and implementation of a strongly-typed concurrent programming language. The first half of the dissertation examines whether the π-calculus supports a simple type system which is flexible enough to provide a suitable foundation for the type system of a concurrent programming language. The second half of the dissertation considers how to implement the π-calculus efficiently, starting with an abstract machine for π-calculus and finally presenting a compilation of π-calculus to C. We start the dissertation by presenting a simple, structural type system for π-calculus, and then, after proving the soundness of our type system, show how to infer principal types for π-terms. This simple type system can be extended to include useful type-theoretic constructions such as recursive types and higherorder polymorphism. Higher-order polymorphism is important, since it gives us the ability to implement abstract datatypes in a type-safe manner, thereby providing a greater degree of modularity for π-calculus programs. The functional computational paradigm plays an important part in many programming languages. It is well-known that the π-calculus can encode functional computation. We go further and show that the type structure of λ-terms is preserved by such encodings, in the sense that we can relate the type of a λ-term to the type of its encoding in the π-calculus. This means that a π-calculus programming language can genuinely support typed functional programming as a special case. An efficient implementation of π-calculus is necessary if we wish to consider π-calculus as an operational foundation for concurrent programming. We first give a simple abstract machine for π-calculus and prove it correct. We then show how this abstract machine inspires a simple, but efficient, compilation of π-calculus to C (which now forms the basis of the Pict programming language implementation).
منابع مشابه
Coalgebraic minimization of HD-automata for the Pi-calculus using polymorphic types
We introduce finite-state verification techniques for the π-calculus whose design and correctness are justified coalgebraically. In particular, we formally specify and implement a minimisation algorithm for HD-automata derived from π-calculus agents. The algorithm is a generalisation of the partition refinement algorithm for classical automata and is specified as a coalgebraic construction defi...
متن کاملOn Polymorphic Sessions and Functions: A Tale of Two (Fully Abstract) Encodings
This work exploits the logical foundation of session types to determine what kind of type discipline for the pi-calculus can exactly capture, and is captured by, lambda-calculus behaviours. Leveraging the proof theoretic content of the soundness and completeness of sequent calculus and natural deduction presentations of linear logic, we develop the first mutually inverse and fully abstract proc...
متن کاملExplicit Fusions: Theory and Implementation
This work describes a concurrent, distributed abstract machine for the pi calculus. Its primary audience are researchers in the field of concurrency. The secondary audience are working programmers looking for a better way to write interactive programs. This audience need only read Chapters 1 (an overview) and 5 (the implementation). I hope that these chapters might prove appealing to students w...
متن کاملTheory and Implementation of a Real-Time Extension to the pi-Calculus
We present a real-time extension to the π-calculus and use it to study a notion of time-bounded equivalence. We introduce the notion of timed compositionality and the associated timed congruence which are useful to reason about the timed behaviour of processes under hard constraints. In addition to this meta-theory we develop an abstract machine for our calculus based on event-scheduling and es...
متن کاملEmbedding Pure Type Systems in the Lambda-Pi-Calculus Modulo
The lambda-Pi-calculus allows to express proofs of minimal predicate logic. It can be extended, in a very simple way, by adding computation rules. This leads to the lambda-Pi-calculus modulo. We show in this paper that this simple extension is surprisingly expressive and, in particular, that all functional Pure Type Systems, such as the system F, or the Calculus of Constructions, can be embedde...
متن کامل